package com.example.springbootp6spy.controller;

import com.example.springbootp6spy.common.result.Result;
import com.example.springbootp6spy.domain.dto.UserRecordAddOrEditDTO;
import com.example.springbootp6spy.domain.dto.UserRecordListDTO;
import com.example.springbootp6spy.service.UserRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 用户档案 前端控制层
 *
 * @author Lv
 * @date 2022/10/3
 */
@RestController
@RequestMapping("/user_record")
public class UserRecordController {

    @Autowired
    private UserRecordService userRecordService;

    /**
     * 查询用户档案列表
     *
     * @param userRecordListDTO 用户档案查询对象
     * @return
     */
    @GetMapping("/list")
    public Result<?> list(@RequestBody UserRecordListDTO userRecordListDTO) {
        return userRecordService.list(userRecordListDTO);
    }

    /**
     * 获取用户档案详情
     *
     * @param id 用户档案id
     * @return
     */
    @GetMapping("/{id}")
    public Result<?> get(@PathVariable("id") Integer id) {
        return userRecordService.get(id);
    }

    /**
     * 添加用户档案
     *
     * @param userRecordAddOrEditDTO 用户档案添加对象
     * @return
     */
    @PostMapping("/add")
    public Result<?> add(@RequestBody UserRecordAddOrEditDTO userRecordAddOrEditDTO) {
        return userRecordService.add(userRecordAddOrEditDTO);
    }

    /**
     * 修改用户档案
     *
     * @param id                     用户档案id
     * @param userRecordAddOrEditDTO 用户档案修改对象
     * @return
     */
    @PutMapping("/{id}")
    public Result<?> edit(@PathVariable("id") Integer id, @RequestBody UserRecordAddOrEditDTO userRecordAddOrEditDTO) {
        return userRecordService.edit(id, userRecordAddOrEditDTO);
    }

    /**
     * 删除用户档案
     *
     * @param id 用户档案id
     * @return
     */
    @DeleteMapping("/{id}")
    public Result<?> delete(@PathVariable("id") Integer id) {
        return userRecordService.delete(id);
    }
}
